perm filename TST.129[P,JRA] blob sn#592228 filedate 1981-06-08 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	\\M1BASL30\M2BASI30\M3BASB30\M4BASI22
C00011 ENDMK
CāŠ—;
\\M1BASL30;\M2BASI30;\M3BASB30;\M4BASI22;
\F3\CFINAL EXAM EECS 129\F1  June 8, 1981
\CTwenty-five problems at four points each, plus embedded gems of wisdom.
\J
Give short, lucid, and  brilliant definitions/descripitions of the following terms:
\.
    1. object-oriented programming
    2. functional programming
    3. message-passing
    4. classes and hierarchies
    5. goal-directed systems
    6. responsible systems

\F4\J
A novice was trying to fix a broken LISP machine by turning the power off and on.
Knight [a designer of the machine], seeing what the student was doing spoke sternly -
"You can not fix a machine by just power-cycling it with no understanding of what is
going wrong." Knight turned the machine off and on. The machine worked.
\F1

7.  Write a LOGO program to  display an upper-case E: top and bottom, 50 units,
spine 70 units, and middle bar 40 units. return turtle to home position when 
completed.

8.  In a paragraph, describe the relationships between truth, deduction, and computation.

9.  Using a representation of sets as sequences, write a function \F2complement\F1
that computes the complement of two sets:
\F2complement(s1 s2)\F1 is all the elements in \F2s1\F1 that are not in \F2s2\F1.
you may assume that \F2si\F1's are "normalized", having no repeated  elements.

\F4
One day a student came to Moon [a LISP hacker] and said "I understand how to make
a better garbage collector. We must keep a reference count of the number of pointers
to each cons." Moon patiently told the student the following story -
One day a student came to Moon  and said "I understand how to make
a better garbage collector...
\F1

10. Discuss the mapping of language elements to objects: why it's done, how it's done.
Show a representation of the following expression:
\.
\C\F2if(x=(), y, rev1(rest(x), mkseq(first(x), y)))\F1,
\J
11. How do we simulate the operation of substitution in computing 
languages?  Why  do we do it?

12. Given \F2reverse(x) = rev1(x, ())\F1 where \F2
\.
\Crev1(x,y) = if(x=(), y, rev1(rest(x), mkseq(first(x), y)))\F1,
\.

   use simplification and substitution rules to compute \F2rev( (A, B) ).\F1
\J
13. Give an example of a non-terminating computation.

\F4
In the days when Sussman [Associate professor (at MIT)
of EE, CS, (and Philosophy)] was a novice, 
Minsky once came to him as he sat hacking at
the PDP-6. "What are you doing?", asked Minksy. "I am training a randomly
wired neural net to play Tic-Tac-Toe", replied Sussman. "Why is the net wired
randomly?", asked Minsky. "I do not want it to have any preconception of how to play."
Minsky shut his eyes. "Why do you close you eyes?", asked Sussman of his teacher. 
"so that the room will be empty." At that moment, Sussman was enlightened.
\F1

14. Mystery function, number one:
\.
    what does \F2MYSTERY 3\F1 produce as output, where:\F2
    TO MYSTERY :N
       IF :N = 0 THEN STOP
       MYSTERY :N-1
       PRINT :N
       END\F1

15. Mystery function, number two: What function does the following computation compute?

\C\F2 f(n) = if(n=0, 0, f(n-1)+(2n-1))\F1

\J
\F3AFTER  YOU HAVE DONE ALL THE OTHER PROBLEMS, AND AFTER THE STRAWBERRIES 
ARE ALL GONE:

\F1 (a) how would you prove it, (b) how would you "grok" it --hint
the Greeks knew.

\F4
A student, in hopes of understanding the lambda-nature, came to Greenblatt [co-designer
of the LISP machine]. As they spoke, a Multics systems hacker walked by. "Is it
true", asked the student, "that PL-1 has many of the same data types as LISP." Almost
before the student had finished his question, Greenblatt shouted "FOO!", and hit the student
with a stick.
\F1

16. What properties separate computational notations from mathematical notations.

Give an example of a function that:\.  
   17.   uses a functional argument.
   18.   produces a functional value.

19. Discuss the model of computation
\.






\J
Describe the arrows and their meaning for the computing engine.

\F4
A disciple of another sect once came to Drescher [a LOGO implementer] as he was eating
his morning meal. "I would like to give you this personality test", said the outsider,
"because I want to make you to be happy." Drescher took the paper that was offered
him and put it into the toaster- "I wish the toaster to be happy too."
\F1

Write a short paragraph, discussion a novel idea of each of the following
works:
\.
20. Spengler, \F2Decline of the West\F1
21. Georgescu-Roegen, \F2Analytical Economics --introduction\F1
22. Pirsig, \F2Zen and the Art of Motorcycle Maintenance\F1
23. Weizenbaum, \F2Computer Power and Human Reason\F1
24. Papert, \F2Mindstorms\F1
25. Intel, \F2432\F1

\F4\J
A cocky novice once said to Stallman [the designer of Emacs]: 
"I can guess why the editor is called
Emacs, but why is the justifier called Bolio?" Stallman replied forcefully
"Names are but names, `Emac and Bolio's' is the name of a confectionary
shop in Boston-town. Neither of these men had anything to do with the software."
His question answered, yet unanswered, the novice turned to go, but
Stallman called to him, "Neither Emac nor Bolio had anything to do with the
ice cream shop either." 
\F1

What is the true nature of this last koan?
\.